package haemers.reflection.data.vo 
{
	/**
	 * ...
	 * @author Jonathan
	 */
	public class MethodVO 
	{
		private var _id:Number;
		private var _name:String;
		
		private var _middleName:String;
		private var _lastName:String;
		
		private var _isIgnored:Boolean;
		private var _overwriteMe:String;
		
		private var _collection:Array;
		private var _vector:Vector.<MethodVO>;
		
		public function MethodVO() 
		{			
		}
		
		/** Public methods **/
		[Serialize(params="id,name")]
		public function addName(id:Number, name:String):void
		{
			_id = id;
			_name = name;
		}
		
		[Serialize(name = "addNameCollection", params = "collection")]
		public function addCollection(collection:Array):void
		{
			_collection = collection;
		}
		
		[Serialize(params = "vector")]
		public function addVector(vector:Vector.<MethodVO>):void
		{
			_vector = vector;
		}
		
		[Serialize(params="secondname,thirdname")]
		public function addDifferentParamNames(middleName:String, lastName:String):void
		{
			_middleName = middleName;
			_lastName = lastName;
		}
		
		[Serialize(params = "ignoreme", ignore = "true")]
		public function ignoreMe(ignored:Boolean):void
		{
			_isIgnored = ignored;
		}
		
		[Serialize(params = "overwriteme", overwriteable = "true")]
		public function overwriteme(value:String):void
		{
			_overwriteMe = value;
		}
		/** Getters & Setters **/
		
		/** Protected methods **/
		
		/** Private methods **/
	}

}